From c505f81e336088b6729a5407a03459f488353288 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Mon, 24 May 2021 22:54:01 +0200
Subject: [PATCH] codec/common/inc/asmdefs_mmi.h: fix mips32 build

Fix the following build failure on mips32 which is raised since version
2.0.0 and
https://github.com/cisco/openh264/commit/b13e5bceb18ebb93d0313b46aab4af6f480ca933:

codec/common/mips/copy_mb_mmi.c: In function 'WelsCopy16x16_mmi':
./codec/common/inc/asmdefs_mmi.h:293:21: error: '_ABI64' undeclared (first use in this function)
  293 |    if (_MIPS_SIM == _ABI64)                                    \
      |                     ^~~~~~

Fixes:
 - http://autobuild.buildroot.org/results/cba3e9d0fd061cc3a92cb732bcdc2c7b66dbf6cb

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[Upstream status: https://github.com/cisco/openh264/pull/3384]
---
 codec/common/inc/asmdefs_mmi.h | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/codec/common/inc/asmdefs_mmi.h b/codec/common/inc/asmdefs_mmi.h
index 69a7ae39..5d1aed93 100644
--- a/codec/common/inc/asmdefs_mmi.h
+++ b/codec/common/inc/asmdefs_mmi.h
@@ -288,9 +288,9 @@
 /**
  * backup register
  */
+#if defined(_ABI64) && _MIPS_SIM == _ABI64
 #define BACKUP_REG \
    double __attribute__((aligned(16))) __back_temp[8];         \
-   if (_MIPS_SIM == _ABI64)                                    \
    __asm__ volatile (                                          \
      "gssqc1       $f25,      $f24,       0x00(%[temp])  \n\t" \
      "gssqc1       $f27,      $f26,       0x10(%[temp])  \n\t" \
@@ -299,8 +299,10 @@
      :                                                         \
      : [temp]"r"(__back_temp)                                  \
      : "memory"                                                \
-   );                                                          \
-  else                                                         \
+   );
+#else
+#define BACKUP_REG \
+   double __attribute__((aligned(16))) __back_temp[8];         \
    __asm__ volatile (                                          \
      "gssqc1       $f22,      $f20,       0x00(%[temp])  \n\t" \
      "gssqc1       $f26,      $f24,       0x10(%[temp])  \n\t" \
@@ -309,12 +311,13 @@
      : [temp]"r"(__back_temp)                                  \
      : "memory"                                                \
    );
+#endif
 
 /**
  * recover register
  */
+#if defined(_ABI64) && _MIPS_SIM == _ABI64
 #define RECOVER_REG \
-   if (_MIPS_SIM == _ABI64)                                    \
    __asm__ volatile (                                          \
      "gslqc1       $f25,      $f24,       0x00(%[temp])  \n\t" \
      "gslqc1       $f27,      $f26,       0x10(%[temp])  \n\t" \
@@ -323,8 +326,9 @@
      :                                                         \
      : [temp]"r"(__back_temp)                                  \
      : "memory"                                                \
-   );                                                          \
-   else                                                        \
+   );
+#else
+#define RECOVER_REG \
    __asm__ volatile (                                          \
      "gslqc1       $f22,      $f20,       0x00(%[temp])  \n\t" \
      "gslqc1       $f26,      $f24,       0x10(%[temp])  \n\t" \
@@ -333,6 +337,7 @@
      : [temp]"r"(__back_temp)                                  \
      : "memory"                                                \
    );
+#endif
 
 # define OK             1
 # define NOTOK          0
-- 
2.30.2

